﻿using System;

namespace UnityEngine.PostProcessing
{
	// Token: 0x020000E9 RID: 233
	[Serializable]
	public class BuiltinDebugViewsModel : PostProcessingModel
	{
		// Token: 0x170000C5 RID: 197
		// (get) Token: 0x060004C9 RID: 1225 RVA: 0x00027399 File Offset: 0x00025599
		// (set) Token: 0x060004CA RID: 1226 RVA: 0x000273A1 File Offset: 0x000255A1
		public BuiltinDebugViewsModel.Settings settings
		{
			get
			{
				return this.m_Settings;
			}
			set
			{
				this.m_Settings = value;
			}
		}

		// Token: 0x170000C6 RID: 198
		// (get) Token: 0x060004CB RID: 1227 RVA: 0x000273AA File Offset: 0x000255AA
		public bool willInterrupt
		{
			get
			{
				return !this.IsModeActive(BuiltinDebugViewsModel.Mode.None) && !this.IsModeActive(BuiltinDebugViewsModel.Mode.EyeAdaptation) && !this.IsModeActive(BuiltinDebugViewsModel.Mode.PreGradingLog) && !this.IsModeActive(BuiltinDebugViewsModel.Mode.LogLut) && !this.IsModeActive(BuiltinDebugViewsModel.Mode.UserLut);
			}
		}

		// Token: 0x060004CC RID: 1228 RVA: 0x000273EA File Offset: 0x000255EA
		public override void Reset()
		{
			this.settings = BuiltinDebugViewsModel.Settings.defaultSettings;
		}

		// Token: 0x060004CD RID: 1229 RVA: 0x000273F7 File Offset: 0x000255F7
		public bool IsModeActive(BuiltinDebugViewsModel.Mode mode)
		{
			return this.m_Settings.mode == mode;
		}

		// Token: 0x04000693 RID: 1683
		[SerializeField]
		private BuiltinDebugViewsModel.Settings m_Settings = BuiltinDebugViewsModel.Settings.defaultSettings;

		// Token: 0x020000EA RID: 234
		[Serializable]
		public struct DepthSettings
		{
			// Token: 0x170000C7 RID: 199
			// (get) Token: 0x060004CE RID: 1230 RVA: 0x00027408 File Offset: 0x00025608
			public static BuiltinDebugViewsModel.DepthSettings defaultSettings
			{
				get
				{
					return new BuiltinDebugViewsModel.DepthSettings
					{
						scale = 1f
					};
				}
			}

			// Token: 0x04000694 RID: 1684
			[Tooltip("Scales the camera far plane before displaying the depth map.")]
			[Range(0f, 1f)]
			public float scale;
		}

		// Token: 0x020000EB RID: 235
		[Serializable]
		public struct MotionVectorsSettings
		{
			// Token: 0x170000C8 RID: 200
			// (get) Token: 0x060004CF RID: 1231 RVA: 0x0002742C File Offset: 0x0002562C
			public static BuiltinDebugViewsModel.MotionVectorsSettings defaultSettings
			{
				get
				{
					return new BuiltinDebugViewsModel.MotionVectorsSettings
					{
						sourceOpacity = 1f,
						motionImageOpacity = 0f,
						motionImageAmplitude = 16f,
						motionVectorsOpacity = 1f,
						motionVectorsResolution = 24,
						motionVectorsAmplitude = 64f
					};
				}
			}

			// Token: 0x04000695 RID: 1685
			[Tooltip("Opacity of the source render.")]
			[Range(0f, 1f)]
			public float sourceOpacity;

			// Token: 0x04000696 RID: 1686
			[Tooltip("Opacity of the per-pixel motion vector colors.")]
			[Range(0f, 1f)]
			public float motionImageOpacity;

			// Token: 0x04000697 RID: 1687
			[Tooltip("Because motion vectors are mainly very small vectors, you can use this setting to make them more visible.")]
			[Min(0f)]
			public float motionImageAmplitude;

			// Token: 0x04000698 RID: 1688
			[Tooltip("Opacity for the motion vector arrows.")]
			[Range(0f, 1f)]
			public float motionVectorsOpacity;

			// Token: 0x04000699 RID: 1689
			[Tooltip("The arrow density on screen.")]
			[Range(8f, 64f)]
			public int motionVectorsResolution;

			// Token: 0x0400069A RID: 1690
			[Min(0f)]
			[Tooltip("Tweaks the arrows length.")]
			public float motionVectorsAmplitude;
		}

		// Token: 0x020000EC RID: 236
		public enum Mode
		{
			// Token: 0x0400069C RID: 1692
			None,
			// Token: 0x0400069D RID: 1693
			Depth,
			// Token: 0x0400069E RID: 1694
			Normals,
			// Token: 0x0400069F RID: 1695
			MotionVectors,
			// Token: 0x040006A0 RID: 1696
			AmbientOcclusion,
			// Token: 0x040006A1 RID: 1697
			EyeAdaptation,
			// Token: 0x040006A2 RID: 1698
			FocusPlane,
			// Token: 0x040006A3 RID: 1699
			PreGradingLog,
			// Token: 0x040006A4 RID: 1700
			LogLut,
			// Token: 0x040006A5 RID: 1701
			UserLut
		}

		// Token: 0x020000ED RID: 237
		[Serializable]
		public struct Settings
		{
			// Token: 0x170000C9 RID: 201
			// (get) Token: 0x060004D0 RID: 1232 RVA: 0x00027488 File Offset: 0x00025688
			public static BuiltinDebugViewsModel.Settings defaultSettings
			{
				get
				{
					return new BuiltinDebugViewsModel.Settings
					{
						mode = BuiltinDebugViewsModel.Mode.None,
						depth = BuiltinDebugViewsModel.DepthSettings.defaultSettings,
						motionVectors = BuiltinDebugViewsModel.MotionVectorsSettings.defaultSettings
					};
				}
			}

			// Token: 0x040006A6 RID: 1702
			public BuiltinDebugViewsModel.Mode mode;

			// Token: 0x040006A7 RID: 1703
			public BuiltinDebugViewsModel.DepthSettings depth;

			// Token: 0x040006A8 RID: 1704
			public BuiltinDebugViewsModel.MotionVectorsSettings motionVectors;
		}
	}
}
